Powtórzenie

Model GARCH wykorzystywany jest przy modelowaniu i przewidywaniu zmienności w szeregach czasowych. Stosuje się go głównie w analizie finansowej.

Wzór ogólny

\[ GARCH(p, q): \sigma_t^2=\omega+\sum_{i=1}^{p}{\alpha_i\epsilon_{t-i}^2} + \sum_{j=1}^{q}{\beta_j\sigma_{t-j}^2} \]

Najczęściej omawiany przypadek

\[ GARCH(1, 1): \sigma_t^2=\omega+{\alpha\epsilon_{t-1}^2} + {\beta\sigma_{t-1}^2} \]

\(\omega\) - bazowy poziom wariancji warunkowej

\(\alpha\) – współczynnik reakcji na nowe informacje (efekt ARCH)

\(\beta\) – współczynnik pamięci zmienności (efekt GARCH)

\(\epsilon_{t-1}^2\) – kwadrat błędu z kroku \(t-1\)

\(\sigma_{t-1}^2\) – wariancja z kroku \(t-1\)

Założenia dotyczące rozkładu standaryzowanych reszt

\[ \text{reszta} = \epsilon_t = \text{predyktowany zwrot} - \text{średni zwrot} \]

\[ \text{standaryzowana reszta} = \frac{\epsilon_t}{\sigma_t} \]

gm_resid = gm_result.resid
gm_std = gm_result.conditional_volatility

gm_std_resid = gm_resid / gm_std


  • Rozkład normalny (domyślna opcja): "normal"

  • Rozkład t-Studenta – grube ogony rozkładu: "t"

  • Skośny rozkład t-Studenta – grube ogony i skośność: "skewt"

Implementacja

normal_gm = arch_model(
  returns, p = 1, q = 1, 
  mean = 'constant', 
  vol = 'GARCH', 
  dist = 'normal'  # założenie o rozkładzie
  )

Rozkład normalny standaryzowanych reszt

Rozkład t–Studenta standaryzowanych reszt

Skośny rozkład t–Studenta standaryzowanych reszt

Założenia o średniej

  • Stała średnia (domyślna opcja): "constant"

  • Zerowa średnia: "zero"

  • Średnia modelowana jako proces AR: "AR" (np. AR(1), AR(2), …)

Implementacja

ar_gm = arch_model(
  returns, p = 1, q = 1, 
  mean = 'AR', lags = 1,  # założenie o średniej
  vol = 'GARCH', 
  dist = 'normal' 
  )

Wpływ założeń o średniej

… na szacowaną zmienność warunkową

Korelacja między wynikami

  Constant Mean AR Mean Zero Mean
Constant Mean 1.000000 0.999939 0.999400
AR Mean 0.999939 1.000000 0.999390
Zero Mean 0.999400 0.999390 1.000000

Asymetryczne wahania zmienności

Model GARCH zakłada, że zmienność reaguje symetrycznie na zdarzenia rynkowe. W praktyce jednak negatywne informacje (np. spadki cen) wywołują silniejszy wzrost zmienności niż pozytywne.

Modele dla asymetrycznych wahań zmienności

GJR–GARCH(p, o, q)

  • umożliwia większy wpływ negatywnych szoków na zmienność poprzez dodatkowy warunkowy składnik \((\gamma > 0)\)

    \[ \sigma^2 = \omega + \sum_{i=1}^p\alpha_i\epsilon_{t-i}^2+\sum_{j=1}^o\gamma_jI_{\{\epsilon_{t-j}<0\}}\epsilon_{t-j}^2+\sum_{k=1}^q\beta_k\sigma_{t-k}^2 \]

Implementacja

arch_model(
  returns, p = 1, q = 1, 
  o = 1,  # ustawiamy rząd składnika asymetrycznego
  mean = 'constant', 
  vol = 'GARCH'
  )


EGARCH(p, o, q)

\[ \ln\sigma_{t}^{2}=\omega+\sum_{i=1}^{p}\alpha_{i}\left(\left|e_{t-i}\right|-\sqrt{2/\pi}\right)+\sum_{j=1}^{o}\gamma_{j} e_{t-j}+\sum_{k=1}^{q}\beta_{k}\ln\sigma_{t-k}^{2}, \]

gdzie \(e_{t}=\epsilon_{t}/\sigma_{t}\).

  • wykładniczy GARCH

  • parametry występujące w modelu nie muszą być dodatnie

Implementacja

arch_model(
  returns, p = 1, q = 1, 
  o = 1, 
  mean = 'constant', 
  vol = 'EGARCH'  # określamy model
  )

Porównanie modeli

Zbliżenie na lata 1997–1998

Prognozy oparte na oknie ruchomym

… polegają na ciągłym dopasowywaniu i predykowaniu (1. step forward) przyszłości z uwzględnieniem nowych obserwacji.

Expanding window forecast

… czyli poszerzające się okno ruchome

Fixed window forecast

… czyli stałe okno ruchome